package com.zhuzi.utils;

import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;

/**
 * @Author: MI
 * @Date: 2022/2/26/18:17
 * @Description: 数字工具
 */
public class NumericUtils {
    /**
     * 判断是否是数字
     *
     * @param str 字符串
     * @return 是否
     */
    public static boolean isNumeric(String str) {
        try {
            new BigDecimal(str);
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    /**
     * 判断是否是数字
     *
     * @param str 字符串
     * @return 是否
     */
    public static boolean isNumeric(String... str) {
        for (String s : str) {
            try {
                new BigDecimal(s);
            } catch (Exception e) {
                return false;
            }
        }
        return true;
    }

    /**
     * 判断是大于0 的数字
     *
     * @param str 字符串
     * @return 是否
     */
    public static boolean isNumericAndGtZero(String str) {
        if (isNumeric(str)) {
            return new BigDecimal(str).compareTo(BigDecimal.ZERO) == 1;
        }
        return false;
    }

    public static boolean isGtZero(BigDecimal num) {
        return num.compareTo(BigDecimal.ZERO) == 1;

    }

    public static boolean compare(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) == 1;
    }

    /**
     * 字符串转换为数字(可能中间有空格，需要去除)
     *
     * @param str 字符串
     * @return
     */
    public static BigDecimal str2BigDecimal(String str) {
        str = StringUtils.replaceEach(str, new String[]{"&nbsp;", " ", "-", "%", ","}, new String[]{"", "", "", "", ""});
        if (StringUtils.isNotBlank(str)) {
            return new BigDecimal(str);
        }
        return BigDecimal.ZERO;
    }

    /**
     * 到期睡前收益率(有负数)
     *
     * @param str
     * @return
     */
    public static BigDecimal str2BigDecimalf(String str) {
        try {
            return NumberUtil.toBigDecimal(str.replace("%", ""));
        } catch (Exception e) {
        }
        return BigDecimal.ZERO;
    }

    public static void main(String[] args) {
        System.out.println(compare(new BigDecimal("5"), new BigDecimal("4")));
    }
}
